home *** CD-ROM | disk | FTP | other *** search
- #! /bin/sh
- #
- # initscripts preinst
- #
-
- set -e
-
- # Remove a no-longer used conffile
- #
- # $1: conffile
- #
- # If the argument was not listed as a conffile, silently do nothing.
- # Adapted from code obtained from http://wiki.debian.org/DpkgConffileHandling
- eliminate_conffile() {
- PKGNAME="initscripts"
- CONFFILE="$1"
-
- if [ -e "$CONFFILE" ]; then
- CURRENT_MD5SUM="`md5sum \"$CONFFILE\" | sed -e \"s/ .*//\"`"
- FACTORY_MD5SUM="`dpkg-query -W -f='${Conffiles}' $PKGNAME | sed -n -e \"\\\\' $CONFFILE'{s/ obsolete$//;s/.* //p}\"`"
- if [ "$CURRENT_MD5SUM" != "$FACTORY_MD5SUM" ]; then
- echo "Obsolete conffile $CONFFILE has been modified by you."
- echo "Saving as $CONFFILE.dpkg-old ..."
- mv -f "$CONFFILE" "$CONFFILE".dpkg-old
- else
- echo "Removing unmodified and obsolete conffile $CONFFILE ..."
- rm -f "$CONFFILE"
- fi
- fi
- }
-
- # Compares a file to the "factory md5sum", and if it matches, removes it.
- # This is useful for when converting from to a conffile *and* changing
- # its contents at the same time.
- convert_to_conffile() {
- CONFFILE="$1"
- FACTORY_MD5SUM="$2"
-
- if [ -e "$CONFFILE" ]; then
- CURRENT_MD5SUM="`md5sum \"$CONFFILE\" | sed -e \"s/ .*//\"`"
- if [ "$CURRENT_MD5SUM" = "$FACTORY_MD5SUM" ]; then
- rm -f "$CONFFILE"
- fi
- fi
- }
-
-
- case "$1" in
- install|upgrade)
- #
- # /etc/init.d/stop-bootlogd used to be a symlink to bootlogd;
- # now it is a separate script. We need to remove the symlink here,
- # before dpkg installs the /etc/init.d/stop-bootlogd file.
- #
- [ -L /etc/init.d/stop-bootlogd ] && rm -f /etc/init.d/stop-bootlogd
- #
- # Remove obsolete conffiles
- #
- if [ "$2" ] && dpkg --compare-versions "$2" lt "2.86.ds1-10" ; then
- eliminate_conffile "/etc/init.d/bootclean.sh"
- fi
- #
- # The /etc/init.d/bootclean script fragment was moved to
- # /lib/init/ in version 2.86.ds1-39
- #
- if [ "$2" ] && dpkg --compare-versions "$2" lt "2.86.ds1-54" ; then
- eliminate_conffile "/etc/init.d/bootclean"
- fi
- #
- # The /etc/init.d/waitnfs.sh script was replaced by mountnfs.sh
- #
- if [ "$2" ] && dpkg --compare-versions "$2" lt "2.86.ds1-56ubuntu1" ; then
- eliminate_conffile "/etc/init.d/waitnfs.sh"
- fi
- #
- # The /etc/init.d/bootlogs.sh script was replaced by bootlogs
- #
- if [ "$2" ] && dpkg --compare-versions "$2" lt "2.87dsf-4ubuntu1" ; then
- eliminate_conffile "/etc/init.d/bootlogs.sh"
- fi
- #
- # The /etc/init.d/rc.local was made a conffile in 2.86.ds1-18,
- # which for Ubuntu translates into "on upgrades to Intrepid and
- # onwards". The only valid upgrade path to Intrepid is from Hardy,
- # so we just check against the md5sum from there.
- if [ "$2" ] && dpkg --compare-versions "$2" lt "2.86.ds1-18" ; then
- convert_to_conffile "/etc/init.d/rc.local" e3756487011471f7753d5d94ce4b6af4
- fi
- #
- # Removed as we switched to Upstart
- #
- if [ "$2" ] && dpkg --compare-versions "$2" lt "2.87dsf-4ubuntu6"; then
- eliminate_conffile "/etc/network/if-up.d/mountnfs"
- eliminate_conffile "/etc/init.d/bootlogs"
- eliminate_conffile "/etc/init.d/checkfs.sh"
- eliminate_conffile "/etc/init.d/checkroot.sh"
- eliminate_conffile "/etc/init.d/mountkernfs.sh"
- eliminate_conffile "/etc/init.d/hostname.sh"
- eliminate_conffile "/etc/init.d/bootmisc.sh"
- eliminate_conffile "/etc/init.d/mountall.sh"
- eliminate_conffile "/etc/init.d/mountdevsubfs.sh"
- eliminate_conffile "/etc/init.d/rmnologin"
- eliminate_conffile "/etc/init.d/mtab.sh"
- eliminate_conffile "/etc/init.d/mountoverflowtmp"
- eliminate_conffile "/etc/init.d/mountnfs.sh"
- eliminate_conffile "/etc/init.d/mountnfs-bootclean.sh"
- eliminate_conffile "/etc/init.d/mountall-bootclean.sh"
- fi
- #
- # Move conflicting log _file_ if present
- #
- [ -f /var/log/fsck ] && mv -f /var/log/fsck /var/log/fsck.dpkg-old
- ;;
- abort-upgrade)
- exit 0
- ;;
- esac
-
- :
-